package com.steakliu.sun.buffer.api;

import com.steakliu.sun.protocol.SunProtocol;
import com.steakliu.sun.spi.annotation.SPI;

/**
 * 功能说明： 请求缓冲
 * <p>
 * Original @Author: steakliu-刘牌, 2023-02-08  22:13
 * <p>
 * Copyright (C)2020-2022  steakliu All rights reserved.
 */
@SPI("queue")
public interface DataBuffer<T> {

    /**
     * 请求放入缓冲中
     * @param protocol
     */
    void push(SunProtocol<T> protocol);

    /**
     * 获取缓冲中请求
     * @return
     */
    SunProtocol<T> take();

    default void init(int capacity){};
}
